package jp.seraph.same.controller;

import jp.seraph.jspf.pose.Pose;

public interface PoseController {
    public void savePose(String aName, Pose aPose);

    public void removePose(String aName);

    public void selectPose(String aPoseName);

    /**
     * エージェントのポーズを対象ポーズに変更する。
     * 
     * @param aPose
     */
    public void setPose(Pose aPose);

    /**
     * エージェントを現在選択中のポーズでアップデートする。
     */
    public void updatePose();

    /**
     * エージェントのポーズを初期状態にする。
     */
    public void reset();

    /**
     * 現在のポーズを左右反転する
     */
    public void reversePoseAsMirror();

    /**
     * 現在のポーズの左半身を右半身にコピーする
     */
    public void copyLeftToRight();

    /**
     * 現在のポーズの右半身を左半身にコピーする
     */
    public void copyRightToLeft();

    public void selectJoint(String aJointName);

    public void setJointAngle(String aJointName, double aDegree);
}
